LW2000

 

Nombre:                UltraEdit 32

Versión:                7.00

Editor:                  UltraEdit

Víctima:                UEDIT32.EXE

Herramientas:       FileMon

                            HIEW

                            W32Dasm

                            Cerebro

Cracker:                LW2000

Tutorial:                número 51

URL:                      http://www.ultraedit.com

 

Renuncia: Este tutorial tiene una finalidad únicamente educativa. No asumo ninguna responsabilidad por el mal uso de éste material.

 

1.     ¡Comenzamos! Vamos a la pantalla de registro e introducimos ‘LW2000 [CiA]’ como Name y ‘1230099’ como Code.

2.     ¡Booom! ¡No hay ningún mensaje! ¡UltraEdit deja de ejecutarse!

3.     ¿Qué significa esto? UltraEdit guarda los detalles en un fichero y lo comprueba al arrancar.

4.     Bien, vamos a echar un vistazo más atento a éste ‘fichero’. ¡Vamos a espiar a UltraEdit con FileMon! FileMon habla de un fichero demoninado ‘UEDIT32.REG’ … ¡Hmmm! ¡Parece que hemos encontrado un buen punto de inicio para crackear UltraEdit!

5.     Cargamos ‘UEDIT32.EXE’ en W32Dasm y buscamos en las ‘String Data References’ por ‘REG’. Bien, nos encontramos algunas apariciones. Pero después de echar un vistazo más atento resulta claro que ésta es la parte que nos interesa:

 

:0043D61E 6840444E00    push 004E4440

:0043D623 B90CE54E00    mov ecx, 004EE50C

:0043D628 E873230500    call 0048F9A0

:0043D62D 83F8FF        cmp eax, FFFFFFFF

:0043D630 0F841D010000 je 0043D753

:0043D636 FFB78C000000 push dword ptr [edi+0000008C]

:0043D63C 8D4D10        lea ecx, dword ptr [ebp+10]

:0043D63F E88DA20500    call 004978D1

:0043D644 8B4510        mov eax, dword ptr [ebp+10]

:0043D647 8D4D10        lea ecx, dword ptr [ebp+10]

:0043D64A C645FC02      mov [ebp-04], 02

:0043D64E 8B40F8        mov eax, dword ptr [eax-08]

:0043D651 83C0FD        add eax, FFFFFFFD

:0043D654 50            push eax

:0043D655 8D45E8        lea eax, dword ptr [ebp-18]

:0043D658 50            push eax

:0043D659 E8A8220500    call 0048F906

 

* Possible StringData Ref from Data Obj ->"REG"

 

6.     Ahora nos desplazamos un poco hacia arriba hasta ver esto:

 

* Reference To: USER32.CreateWindowExA, Ord:0059h

|

:0043D5E2 FF1530074C00 Call dword ptr [004C0730]

:0043D5E8 A3C8FF4E00    mov dword ptr [004EFFC8], eax

:0043D5ED 8D8796020000  lea eax, dword ptr [edi+00000296]

:0043D5F3 885810        mov byte ptr [eax+10], bl

:0043D5F6 FF3500E54E00 push dword ptr [004EE500]

:0043D5FC 6A01          push 00000001

:0043D5FE 50            push eax

:0043D5FF FF75F0        push [ebp-10]

:0043D602 E8BB11FDFF    call 0040E7C2     >Rutina de comprobación

:0043D607 83C410        add esp, 00000010

:0043D60A 85C0          test eax, eax       <-- TEST

:0043D60C 0F8489010000 je 0043D79B <-- BAD BOY!

:0043D612 391D1C004F00 cmp dword ptr [004F001C], ebx

:0043D618 0F857D010000 jne 0043D79B

 

* Possible StringData Ref from Data Obj ->"Extension License"

 

7.     La función ‘createWindowEx’ crea una ventana popup, overlapped o hija, con un estilo extendido. Si la función tiene éxito, el valor de retorno es el handle de la nueva ventana, en caso contrario es cero. Vemos que en la posición ‘0043D602’ hay un ‘CALL’. Dentro de éste ‘CALL’ nuestro Serial falso se compara con el correcto. Si son idénticos entonces ‘EAX = 1’ en caso contrario ‘EAX = 0’.

8.     Así que, ¿qué podemos hacer? Vamos a cambiar el call, de modo tal que el valor de retorno sea siempre ‘1’. Vamos dentro del ‘CALL’ y anotamos el offset.

9.     Abrimos HIEW, vamos al offset. Entramos en el modo ‘DeCode’ y pulsamos F3 para editar, y F2 para introducir comandos Assembler. Ahora escribimos:

 

mov eax,1   [pulsamos ‘Intro’]

ret         [pulsamos ‘Intro’]

[press Esc]

 

10.  ¿Qué es lo que hace esto? Esto pone el valor ‘1’ en el registro ‘EAX’ y retorna del ‘CALL’.

11.  ¡Bien! ¡Probemos nuestra versión libre de ‘bugs’!

 

¡Enhorabuena! ¡Ya es usted un usuario registrado!

 

¡Se acabó! Fácil, ¿no? ¿Algún comentario? Envíeme un email a LW2000@gmx.net. o vaya a http://www.LW2000.cjb.net

 

Gracia a tKC por sus tutoriales. Empecé leyendo su primer tutorial y todavía sigo leyéndolos.

 

Traducción de: MeGaBiTe